#ifndef _TERRAIN_H
#define _TERRAIN_H
#define XMAX 13
#define YMAX 26

// Lg terrain = 10. +1 mur de chaque cote (et 2 vides de chaque cote.)
// Ht terrain = 20. +4 en haut pour apparition, +1 sol (et 2 vides ) en dessous.
#define	TERRAIN_LG 13
#define TERRAIN_HT 25

typedef struct
{
	int dimx;
	int dimy;
	char tableauPiecesPosees[100][100];
}Terrain;

/**
 *@brief initialisation du terrain avec le terrain modele
 *@param reference sur la structure Terrain
 *@param pointeur sur un caractere
 */
void terrainInit(Terrain&, const char*);


/**
 *@brief teste si la position en (x,y) sur le terrain est valide c'est a dire
 si il n'y a pas collision ni ne sort du tableau
 *@param reference constante sur la structure Terrain
 *@param coordonnee en x (abscisse)
 *@param coordonnee en y (ordonnee)
 *@return booleen
 */
bool terEstPositionPlaceValide(const Terrain& t, const int x, const int y);

/**
 *@brief regarde le contenu des la case de coordonnees (x,y)
 *@param reference constante sur la structure Terrain
 *@param coordonnee en y (ordonnee)
 *@param coordonnee en x (abscisse)
 *@return caractere de la case
 */
char terGetXY(const Terrain& t, int y, int x);


/**
 *@brief renvoie le nombre de colonnes du terrain
 *@param reference constante sur la structure Terrain
 *@return DimX = largeur du terrain
 */
int getDimX(const Terrain& t);

/**
 *@brief renvoie le nombre de lignes du terrain
 *@param reference constante sur la structure Terrain
 *@return DimY = hauteur du terrain
 */
int getDimY(const Terrain& t);



#endif

